In a clustered storage environment, it is typical to thin provision the file systems and let file system clients use a common pool of storage. The storage itself is built by adding small units to the storage pool as and when needed. One such example of this type of system is the object based storage system. Here the storage nodes, each referred to as an Object Storage Device (OSD), can be pooled in order to build or accumulate large amounts of storage space. Typically, there are one or more meta-data servers which serve the name-space and perform the management and control operations of the object based storage system. In such a system, the file system clients interact with the meta-data server in order to look up the filename and get a mapping to the storage units, called objects. Note that the objects are served by the Object Storage Devices. In addition, the block level storage accounting is performed by the Object Storage Devices themselves, without fine-grained control by the meta-data server. The access grant provided to the file system clients by the meta-data server, along with the mapping, allows the file system clients to write to the objects, usually without restriction on how much space they can consume.
However, it can be desirable to impose space usage limits on one or more file systems of the object based storage system. For example, space usage limits for different file systems can ensure that each file system has enough corresponding storage space while restricting any file system from over consuming the available storage system. Nevertheless, the setup of the object based storage system makes it difficult for the meta-data server to impose limits on the space usage of one or more file systems. For example, within an Object Storage Device based system, usually there are tens or hundreds of Object Storage Devices on which a single file system data can span and reside, thus increasing the complexity of imposing limits on the space usage of that file system.